package com.aims.api.dto.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 账户视图对象
 */
@Data
public class AccountVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 账户ID
     */
    private Long id;

    /**
     * 账户编号
     */
    private String accountNo;

    /**
     * 账户名称
     */
    private String accountName;

    /**
     * 账户类型：1-普通账户，2-VIP账户，3-企业账户
     */
    private Integer accountType;

    /**
     * 账户类型名称
     */
    private String accountTypeName;

    /**
     * 账户余额
     */
    private BigDecimal balance;

    /**
     * 冻结金额
     */
    private BigDecimal frozenAmount;

    /**
     * 可用余额
     */
    private BigDecimal availableBalance;

    /**
     * 状态：0-禁用，1-启用，2-冻结
     */
    private Integer status;

    /**
     * 状态名称
     */
    private String statusName;

    /**
     * 所有者ID
     */
    private Long ownerId;

    /**
     * 所有者类型：1-个人，2-企业
     */
    private Integer ownerType;

    /**
     * 币种
     */
    private String currency;

    /**
     * 开户日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate openDate;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}